package com.ruoyi.bmxt.service;

import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Map;

import com.ruoyi.bmxt.domain.BmStudent;
import com.ruoyi.bmxt.domain.ui.FileZipDto;
import com.ruoyi.common.core.domain.TreeSelect;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.exception.file.InvalidExtensionException;

/**
 * 学生管理Service接口
 *
 * @author 魏建波
 * @date 2023-02-24
 */
public interface IBmStudentService
{
    /**
     * 查询学生管理
     *
     * @param studentId 学生管理主键
     * @return 学生管理
     */
    public BmStudent selectBmStudentByStudentId(Long studentId);

    /**
     * 查询学生管理列表
     *
     * @param bmStudent 学生管理
     * @return 学生管理集合
     */
    public List<BmStudent> selectBmStudentList(BmStudent bmStudent);

    /**
     * 新增学生管理
     *
     * @param bmStudent 学生管理
     * @return 结果
     */
    public int insertBmStudent(BmStudent bmStudent);

    /**
     * 修改学生管理
     *
     * @param bmStudent 学生管理
     * @return 结果
     */
    public int updateBmStudent(BmStudent bmStudent);

    /**
     * 批量删除学生管理
     *
     * @param studentIds 需要删除的学生管理主键集合
     * @return 结果
     */
    public int deleteBmStudentByStudentIds(Long[] studentIds);

    /**
     * 删除学生管理信息
     *
     * @param studentId 学生管理主键
     * @return 结果
     */
    public int deleteBmStudentByStudentId(Long studentId);

    int insertBmStudentByWeb(BmStudent bmStudent) throws IOException, InvalidExtensionException;

    /**
     * 根据idCard查看是否唯一
     * @param bmStudent
     * @return
     */
    String checkIdCardUnique(BmStudent bmStudent);

    String createFileByUser(FileZipDto fileZipDto) throws Exception;

    List<SysDept> selectDeptList(SysDept dept);

    List<TreeSelect> buildDeptStaffTreeSelect(List<SysDept> depts);

    BmStudent selectBmStudentByCardIdAndProjectId(String idCard,Long projectId);
}
